package com.softer.wxzj.mapper;

import com.softer.wxzj.entity.ZoneCode;
import com.softer.wxzj.mapper.base.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * UserMapper class
 *
 * @author zcz
 * @date 2019/1/16
 */
@Repository
public interface ZoneCodeMapper extends BaseMapper {
    /**
     * 添加区域信息  返回添加行数
     *
     * @param zoneCode
     * @return
     */
    int insert(ZoneCode zoneCode);

    /**
     * 更改区域信息  返回影响行数
     *
     * @param zoneCode
     * @return
     */
    int update(ZoneCode zoneCode);

    /**
     * 根据区域地址的id（唯一标识） 删除对应信息
     *
     * @param id
     * @return
     */
    int delete(String id);

    /**
     * 查询区域信息  根据表内任何字段查询  模糊查询  返回list
     * @param zoneCode
     * @return
     */
    //List<ZoneCode> getList(ZoneCode zoneCode);

    /**
     * 根据信息查询行数
     *
     * @param zoneCode 对象
     * @return
     */
    int getListCount(ZoneCode zoneCode);

    /**
     * 根据传入的区域编码截取后的map 查询区域信息
     *
     * @param map
     * @return
     */
    List<ZoneCode> getListInZoneCode(Map map);

    List<ZoneCode> getListInZoneCodeOut();

    /**
     * @param zoneCode
     * @return
     */
    List<ZoneCode> getListPart(ZoneCode zoneCode);

    /**
     * 查询子集名称
     *
     * @param map
     * @return
     */
    List<ZoneCode> selectName(Map map);

    /**
     * 根据code查名称
     *
     * @param zoneCode
     * @return
     */
    String getZoneName(String zoneCode);

    List<ZoneCode> getAllList();

    String zoneCodeSuperiors(@Param("zoneCodeHighest") String zoneCodeHighest, @Param("zoneCode") String zoneCode);

    ZoneCode selectZoneCode(String zoneCode);

    String selectNameById(String zoneCode);

    /**
     * 通过zoneCode 查询
     *
     * @param newRegionCode
     * @return
     */
    ZoneCode getInfoByZoneCode(String newRegionCode);

    String getAllZoneCode(String zoneCode);

    /**
     * 查询区域名称
     *
     * @param zoneCode 区域代码
     * @return 区域名称
     */
    String getAllZoneName(String zoneCode);
}
